home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 25 / AACD 25.iso / AACD / Graphics / PerfectPaint / rexx / Anim / Operators / Perspective2 < prev    next >
Encoding:
Text File  |  2001-04-05  |  1.8 KB  |  121 lines

  1. /* Effect Operators Mosaic
  2. 000
  3. */
  4.  
  5.     call addlib("rexxmathlib.library", 5, -30, 0)
  6.  
  7.     options results
  8.  
  9.     parse ARG Port Opt1 Opt2 Opt3 s0 t0 s1 t1 b
  10.     
  11.     ADDRESS value Port
  12.  
  13.     pp_GetWidth
  14.     w=result
  15.     pp_GetHeight
  16.     h=result
  17.     pp_GetDepth
  18.     D=result
  19.  
  20.         pp_ComposeReqOff        
  21.         pp_GetCurrentBrush
  22.         CB=result
  23.         pp_FindEmptyBrush
  24.         Brush=result
  25.         pp_SetBrush Brush
  26.  
  27.         pp_GotoFrame s0
  28.         pp_PicttoSpare    
  29.  
  30.         IF Opt3=0|Opt3=2 then DO
  31.             Start_Rot=0
  32.             End_Rot=90
  33.         END
  34.         ELSE DO
  35.             Start_Rot=0
  36.             End_Rot=-90
  37.         END
  38.  
  39.         s2=s0+(s1-s0)/2
  40.  
  41.         Step=s2-s0
  42.         Step_Rot=(End_Rot-Start_Rot)/Step
  43.  
  44.         pp_ClosestColor 0 0 0
  45.         color=result
  46.         pp_SetBpen color
  47.         
  48.         Do i=(s0+1) to s2-1
  49.  
  50.             rot=trunc(Start_Rot+Step_Rot*(i-s0)+0.5,0)
  51.  
  52.             IF t0=0 then DO
  53.                 pp_SpareOnOff
  54.                 pp_Pickbrush 0 0 W H
  55.                 pp_GotoFrame i
  56.             END
  57.             ELSE DO
  58.                 pp_GotoFrame i
  59.                 pp_Pickbrush 0 0 W H                
  60.             END
  61.             pp_Cls
  62.             IF Opt3=0|Opt3=1 then DO            
  63.                 pp_BrushEffect 0 rot rot rot 2            
  64.             END
  65.             ELSE DO
  66.                 pp_BrushEffect 0 rot rot rot 2            
  67.             END
  68.             pp_plot w/2 h/2        
  69.         END
  70.  
  71.         IF Opt3=0|Opt3=2 then DO
  72.             Start_Rot=-90
  73.             End_Rot=0
  74.         END
  75.         ELSE DO
  76.             Start_Rot=90
  77.             End_Rot=0
  78.         END
  79.  
  80.         pp_GotoFrame s2
  81.         pp_Cls
  82.  
  83.         Step=s1-s2
  84.         Step_Rot=(End_Rot-Start_Rot)/Step
  85.  
  86.         pp_GotoFrame s1            
  87.         pp_Pickbrush 0 0 W H        
  88.         
  89.         Do i=s2+1 to s1
  90.             rot=trunc(Start_Rot+Step_Rot*(i-s2)+0.5,0)
  91.             IF t1=0 then DO
  92.                 pp_GotoFrame s1
  93.                 pp_Pickbrush 0 0 W H
  94.                 pp_GotoFrame i                    
  95.             END
  96.             ELSE DO
  97.                 pp_GotoFrame s1+(i-s2-1)
  98.                 pp_Pickbrush 0 0 W H
  99.                 pp_GotoFrame i                            
  100.             END    
  101.             pp_Cls
  102.             IF Opt3=0|Opt3=1 then DO            
  103.                 pp_BrushEffect 0 rot rot rot 2            
  104.             END
  105.             ELSE DO
  106.                 pp_BrushEffect 0 rot rot rot 2            
  107.             END
  108.             pp_plot w/2 h/2
  109.         
  110.         END
  111.  
  112.         pp_Gotoframe s0
  113.         pp_FreeBrush
  114.         pp_SetBrush CB
  115.         pp_BrushOpacity 100
  116.  
  117.         pp_EffectOff
  118.         pp_ComposeReqOn    
  119.  
  120.     EXIT
  121.